A technology disclosed in this specification relates to a data processing technology for a storage system, and more particularly, to a technology of optimizing issuance of an I/O command when snapshot processing or copying processing is carried out in an allocation-on-use (AOU) enabled volume.
As one of basic storage functions, for example, a volume AOU technology is disclosed in JP 2003-15915 A. According to the technology of JP 2003-15915 A, in a volume pool including a plurality of virtual volumes, a physical block is not allocated to a block constituting a virtual volume when the virtual volume is created. When an actual use request (writing I/O request or the like) is issued, a physical block is allocated, from the volume pool, to a target block of the request. By using the AOU technology, a sufficiently large size of the virtual volume is allocated, and a size of the volume pool is properly set, whereby basically an administrator only needs to monitor a free capacity of the volume pool and is freed from capacity expansion work of the virtual volume.
When the size of the virtual volume is excessively large, a resource size for managing the volume itself (e.g., file system metadata and snapshot management table) is increased by a corresponding amount. As a result, there arise problems such as a performance reduction caused by consumption of usable area in a memory by holding management data therein, and consumption of usable disk capacity by using the disk capacity for storing the management data.
A snapshot function is disclosed as another basic storage function. There are two systems for realizing the snapshot function, i.e., an entire snapshot system for copying entire volumes, and a differential snapshot system (e.g., refer to JP 2004-342050 A) for separately storing differential information alone and creating a snapshot image from differential data and primary volume data. The differential snapshot system can be further classified into two systems. In other words, there are an allocation-on-write system for writing write data of a primary volume in an unallocated area and rewrite a primary volume mapping table, and a copy-on-write (hereinafter referred to as “COW”) system for copying (saving) data originally held in a write request block in another area at the time of writing in the primary volume, and then executing requested write processing. The COW system is disclosed in JP 2004-342050. Reading performance of the COW system for a volume in which a differential snapshot is executed is equal to that of a volume having no snapshot. However, as writing performance of the former in the volume is lower than that of the latter in the volume because of copying processing for the COW. A conventional art to mitigate such a performance reduction is disclosed in, e.g., U.S. Pat. No. 6,792,518.
According to the technology of U.S. Pat. No. 6,792,518, free areas of a file system for the primary volume and past snapshots are extracted and, when COW occurs in their overlapped (AND) free area, the COW is made invalid.